jq হল একটি শক্তিশালী কমান্ড-লাইন টুল যা JSON ডেটা ফিল্টারিং, ম্যানিপুলেশন এবং প্রসেসিং করার জন্য ব্যবহৃত হয়। এটি JSON ডেটাকে সহজভাবে প্রক্রিয়া করতে এবং প্রয়োজনীয় তথ্য বের করতে সহায়তা করে। এটি JSON ডেটার ভিতর থেকে সুনির্দিষ্ট তথ্য সিলেক্ট করতে এবং পরিবর্তন করতে সাহায্য করে, যা সাধারণত স্ক্রিপ্টিং বা ডেটা প্রক্রিয়া করার সময় প্রয়োজন হয়।
এখানে আমরা jq টুল ব্যবহার করে JSON ফিল্টারিং এবং ম্যানিপুলেশন কিভাবে করা যায়, তার কিছু উদাহরণ দেখাবো।
jq টুল ইনস্টল করা
আপনি যদি jq টুলটি ইনস্টল না করে থাকেন, তাহলে এটি ইনস্টল করতে হবে। নিচে jq টুল ইনস্টল করার পদ্ধতি দেওয়া হলো।
Linux/MacOS
sudo apt-get install jq # Ubuntu/Debian-based systems
brew install jq # MacOS (Homebrew)
Windows
Windows এ jq টুল ইনস্টল করতে, jq official website থেকে Windows ভার্সন ডাউনলোড করে ইনস্টল করতে পারেন।
jq ব্যবহার করে JSON ফিল্টারিং
jq টুল ব্যবহার করে JSON ডেটার মধ্যে নির্দিষ্ট তথ্য বের করা বা ফিল্টার করা খুব সহজ। আমরা বিভিন্ন ধরনের ফিল্টারিং অপারেশন দেখবো।
১. JSON ফাইল থেকে সমস্ত কীগুলি বের করা
ধরা যাক আমাদের একটি JSON ফাইল আছে:
{
"name": "John",
"age": 30,
"city": "New York"
}
এই JSON ডেটা থেকে সমস্ত কীগুলি (key) বের করতে নিম্নলিখিত jq কমান্ডটি ব্যবহার করা হয়:
cat file.json | jq 'keys'
এটা আউটপুট করবে:
[
"name",
"age",
"city"
]
২. নির্দিষ্ট কীগুলি (key) বের করা
যদি আপনি শুধুমাত্র name কীগুলির মান বের করতে চান, তাহলে এটি করতে হবে:
cat file.json | jq '.name'
এটি আউটপুট করবে:
"John"
৩. ফিল্টার ব্যবহার করে নির্দিষ্ট মান (value) বের করা
ধরা যাক আমাদের JSON ফাইলে nested ডেটা রয়েছে, যেমন:
{
"person": {
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
}
}
}
এখন, যদি আমরা person.address.city এর মান বের করতে চাই, তাহলে এই কমান্ডটি ব্যবহার করা হয়:
cat file.json | jq '.person.address.city'
এটি আউটপুট করবে:
"New York"
৪. JSON অ্যারে থেকে নির্দিষ্ট উপাদান বের করা
ধরা যাক, আমাদের JSON ডেটা একটি অ্যারে রয়েছে, যেমন:
[
{"name": "John", "age": 30},
{"name": "Jane", "age": 25},
{"name": "Mark", "age": 35}
]
এখন, যদি আমরা শুধুমাত্র age ফিল্টার করতে চাই, তাহলে এটি করতে হবে:
cat file.json | jq '.[].age'
এটি আউটপুট করবে:
30
25
35
৫. jq ব্যবহার করে JSON ডেটা ম্যানিপুলেশন (পরিবর্তন)
jq টুল ব্যবহার করে আপনি JSON ডেটার মান পরিবর্তন বা ম্যানিপুলেশনও করতে পারেন। উদাহরণস্বরূপ, যদি আপনি JSON এর age মান পরিবর্তন করতে চান, তাহলে এটি করতে হবে:
cat file.json | jq '.person.age = 35'
এটি আউটপুট করবে:
{
"person": {
"name": "John",
"age": 35,
"address": {
"street": "123 Main St",
"city": "New York"
}
}
}
৬. jq দিয়ে JSON ফিল্টারিং এবং চেইন অপারেশন
আপনি jq টুলে একাধিক ফিল্টার চেইন করতে পারেন। যেমন, যদি আপনি age এবং name উভয় তথ্য একসাথে পেতে চান:
cat file.json | jq '.person | {name, age}'
এটি আউটপুট করবে:
{
"name": "John",
"age": 30
}
৭. JSON অ্যারে থেকে কিছু নির্দিষ্ট উপাদান বের করা
ধরা যাক, আপনার JSON অ্যারে থেকে age 30 এর বেশি এমন ব্যক্তিদের নাম বের করতে চান, তাহলে আপনি এইভাবে করতে পারেন:
cat file.json | jq '.[] | select(.age > 30) | .name'
এটি আউটপুট করবে:
"Mark"
jq এর আরও কিছু শক্তিশালী ফিচার
- Filter Expressions: jq ব্যবহার করে আরও জটিল ফিল্টার এক্সপ্রেশন তৈরি করা যায়, যেমন শর্তযুক্ত চয়ন (conditional selection), এবং ধাপানুসারী (hierarchical) ডেটা ফিল্টারিং।
- Aggregation: jq ব্যবহার করে অ্যারে বা ডেটার উপর যোগফল, গড়, সর্বোচ্চ বা সর্বনিম্ন মান বের করা যেতে পারে।
- JSON ম্যানিপুলেশন: jq JSON ডেটা পরিবর্তন, তৈরি, যুক্ত বা মুছে ফেলার কাজ করতে পারে।
jq টুলটি JSON ডেটার ফিল্টারিং এবং ম্যানিপুলেশন করার জন্য অত্যন্ত শক্তিশালী এবং কার্যকরী। এটি কমান্ড-লাইন থেকে JSON ডেটার উপর বিভিন্ন ধরনের কার্যকরী ফিল্টারিং এবং ম্যানিপুলেশন কাজ করতে সাহায্য করে। JSON ডেটা বিশ্লেষণ, টেমপ্লেটিং এবং বড় ডেটাসেটের মধ্যে প্যাটার্ন খোঁজা এটির প্রধান ব্যবহার।
Read more